RFEM 6 jest programem głównym pakietu oprogramowania, który służy do analizy konstrukcji przy użyciu MES. Dalsze analizy oraz wymiarowanie przeprowadzane jest w odpowiednich rozszerzeniach. Program główny RFEM 6 służy do definiowania konstrukcji, materiałów i obciążeń płaskich i przestrzennych układów konstrukcyjnych składających się z płyt, ścian, powłok i prętów. Program umożliwia również tworzenie konstrukcji mieszanych oraz modelowanie elementów bryłowych i kontaktowych.
RSTAB 9 to wydajne oprogramowanie do obliczeń konstrukcji szkieletowych 3D, odzwierciedlające aktualny stan wiedzy i pomagające inżynierom sprostać wymaganiom współczesnej inżynierii lądowej.
Często zbyt długo zajmujesz się obliczaniem przekrojów? Oprogramowanie firmy Dlubal i program samodzielny RSECTION ułatwiają pracę, określając i przeprowadzając analizę naprężeń dla różnych przekrojów.
Czy zawsze wiesz, skąd wieje wiatr? Oczywiście od strony innowacji! RWIND 2 to program, który wykorzystuje cyfrowy tunel aerodynamiczny do numerycznej symulacji przepływu wiatru. Program symuluje przepływ wokół dowolnej geometrii budynku i określa obciążenia wiatrem na powierzchnie.
Szukasz narzędzia do przeglądu stref obciążenia śniegiem, wiatrem i trzęsieniem ziemi? Dobrze trafiłeś! Skorzystaj z narzędzia do geolokalizacji do szybkiego i skutecznego definiowania obciążenia śniegiem, prędkości wiatru, obciążenia trzęsieniem ziemi, zgodnie z Eurokodem i innymi międzynarodowymi normami.
Chcesz wypróbować możliwości programów Dlubal Software? To Twoja szansa! Dzięki 90-dniowej pełnej wersji, możesz w pełni przetestować wszystkie nasze programy.
W przykładowym programie najpierw tworzony jest wspornik z IPE 200. Jest on poddany obciążeniu na pręcie 3,5 kN i przeprowadzane są obliczenia.
Ta tabela jest dostępna w wierszu 34:
Metoda ResultTables.NodesDeformations () wymaga 3 argumentów. Najpierw określa się, jakiego rodzaju wyniki mają zostać odczytane. Mogą być to wyniki
ResultTables.NodesDeformations ()
sein.
Następnie podany zostanie numer przypadku obciążenia, kombinacji obciążeń itp. W końcu, numer węzła zostaje przeniesiony do metody.
Wartość zwrotna d metody jest listą zawartą w słowniku. W wierszu 37, d jest wyświetlane w całości. Wiersz 40 pokazuje, w jaki sposób można uzyskać dostęp do określonej wartości. [0] jest indeksem listy, a [' displacement_z'] jest kluczem słownika.
d
[0]
[' displacement_z']
There are many similarities between the RFEM 5 the RFEM 6 user interface and in general, the modeling workflow including drawing members, surfaces, nodes, etc. will be familiar as well as the program GUI. However, the biggest change will include the concept that design is integrated directly in the main program rather than a separate add-on module dialog box. Design parameters are assigned to members, surfaces, and solids directly when initially modeling the element. The modifications to the modeling workflow will be a more efficient and intuitive approach than previous versions.
Download a free 90-day trial version for RFEM 6 to explore the updated user interface today.
Odkształcenia prętów można odczytać na przykład za pomocą funkcji "GetMemberDeformations (). Funkcja ta oczekuje numeru, rodzaju metody liczenia prętów (nr pręta/numer na liście) oraz układu współrzędnych, który ma zostać zastosowany. Można wybrać, czy ma zostać zastosowany lokalny układ osi, główny układ osi czy globalny układ współrzędnych:
Sub test_results_member_axis ()Dim iApp As RFEM5.ApplicationUstaw iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e'pobierz interfejs do obliczeńDim iCalc As RFEM5.ICalculation2Ustaw iCalc = iMod.GetCalculation'pobierz interfejs do wynikówDim iRes As RFEM5.IResults2Ustaw iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1)'otrzymuj deformacje w lokalnym układzie współrzędnychDim memDefs_L () As RFEM5.MemberDeformationsmemDefs_L = iRes.GetMemberDeformations (1, AtNo, osie lokalne)'otrzymuj deformacje w globalnym układzie współrzędnychDim memDefs_G () As RFEM5.MemberDeformationsmemDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)'otrzymuj deformacje w głównym układzie współrzędnychDim memDefs_P () As RFEM5.MemberDeformationsmemDefs_P = iRes.GetMemberDeformations (1, AtNo, LocalPrincipalAxes)e:Jeżeli Err.Number <> 0 to MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = NicZakończ sub
Mały program odczytuje lokalne odkształcenia (memDefs_L) w osiach pręta i osiach głównych (memDefs_P) oraz globalne odkształcenia w osiach pręta (memDefs_G).
Podobnie jak wszystkie inne wyniki, wypadkową przekroju można odczytać poprzez IModel3 → ICalculation2 → IResults2. Interfejs do wyników zapewnia funkcja GetResultant, która po podaniu numeru przekroju i rodzaju rozkładu wyników zwraca strukturę ResultantForce. Na konstrukcję tę składają się, między innymi, wektory sił i momentów:
Do wyboru obiektów służy funkcja "SelectObjects" w interfejsie IModelData (lub IModeldata2 i tym podobne). Funkcja oczekuje, że typ obiektu i jego numery zostaną podane w postaci łańcucha znaków. Oto krótki przykład:
Subselect_objects ()Model przyciemnienia Jak w RFEM5.modelUstaw model = GetObject(, "RFEM5.Model")model.GetApplication.LockLicenseOn Error GoTo e Dim iModdata As IModelData2 Ustaw iModdata = model.GetModelData ' włącz Wybory iModdata.EnableSelections Prawda ' wybierz węzły 2-3 oraz linie 1 i 3 iModdata.SelectObjects ModelObjectType.NodeObject, "2-3" iModdata.SelectObjects ModelObjectType.LineObject, "1,3" ' Odznacz węzły i linie iModdata.SelectObjects ModelObjectType.NodeObject, "" iModdata.SelectObjects ModelObjectType.LineObject, "" e: Jeżeli Err.Number <> 0 to MsgBox Err.description, , Err.Sourcemodel.GetApplication.UnlockLicenseUstaw iModdata = NicUstaw model = NicZakończ sub
W górnej części następuje aktywacja wyboru, a następnie wybierane są węzły od 2 do 3 oraz linie 1 i 3. Następnie linie i węzły są odznaczane przez pusty ciąg znaków.
Do odczytania lub modyfikacji wybranych obiektów potrzebna jest funkcja "IModelData.EnableSelections" (znajduje się również powyżej w kodzie). Jeżeli funkcja jest pobierana za pomocą opcji „True”, na przykład tylko wybrane węzły są uzyskiwane za pomocą funkcji „IModelData.GetNodes ()”.
Naprężenia powierzchni można wyświetlić za pomocą interfejsu COM. Najpierw potrzebujesz interfejsu do modelu (IModel), a następnie interfejsu do obliczeń (ICalculation2). Za pomocą tego interfejsu można uzyskać interfejs dla wyników (IResults2):
Sub transitions_surfaces_example ()Dim iApp As RFEM5.ApplicationDim iModel As RFEM5.modelSet iModel = GetObject(, "RFEM5.Model")W przypadku błędu Idź do EJeśli nie iModel jest niczym, to' pobierz interfejs z modeluUstaw iApp = iModel.GetApplicationiApp.LockLicense ' pobierz interfejs z obliczeńDim iCalc As RFEM5.ICalculation2 Set iCalc = iModel.GetCalculation ' pobierz interfejs z wyników z przypadku obciążenia 1Dim iRes As RFEM5.IResults2Ustaw iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1) ' uzyskać naprężenia równoważneDim str_equ () As RFEM5.SurfaceEquivalentNaprężeniastr_equ = iRes.GetSurfaceEquivalentNaprężenia(1, AtNo, Hipoteza VonMisesa) End IfE:Jeżeli Err.Number <>0 toMsgBox Err.Number & „ ” & Err.descriptionEnd IfJeśli nie iApp to nic, toiApp.UnlockLicenseEnd If
Funkcja GetSurfaceEquivalentNaprężenia wymaga określenia hipotezy obliczeniowej. W tym przypadku wyświetlane są wyniki naprężeń von Misesa. Należy pamiętać, że interfejs COM wykorzystuje jednostki SI, więc naprężenie jest przekazywane w N/m².
Sub test_section ()' pobierz interfejs z otwartego modelu i zablokuj licencję/programDim iModel As RFEM5.IModel3 Set iModel = GetObject(, "RFEM5.Model") iModel.GetApplication.LockLicense W przypadku błędu Idź do E Dim iSecs As RFEM5.ISectionsUstaw iSec = iModel.GetSections ()
' najpierw usuń wszystkie sekcjeiSecs.PrepareModification iSecs.DeleteObjects („Wszystkie”)iSecs.FinishModification ' ustawić przekrój na bryleDim s Jak w RFEM5.Sectionsek.EdgePointA.X = 2sek.EdgePointA.Y = 5sek.Punkt krawędzi A.Z = 0sek.EdgePointB.X = 2sek.EdgePoint BY = 8sek.Punkt krawędzi B.Z = 0 sek.no = 1sec.Name = "przekrój bryły"sec.Plane = GlobalPlaneInPositiveXsec.ShowValuesInIsolines = Falsesec.Type = SectionOnSolidSectionLinesek.ObjectList = "1" iSecs.PrepareModificationiSecs.SetSection sekiSecs.FinishModification
' ustawić przekrój na powierzchnisek.EdgePointA.X = 2sek.EdgePointA.Y = 0sek.Punkt krawędzi A.Z = 0sek.EdgePointB.X = 2sek.EdgePoint BY = 3sek.Punkt krawędzi B.Z = 0 sek.no = 2sec.Name = "przekrój powierzchni"sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = Truesek.Typ = przekrój przez płaszczyznę powierzchniowąsek.ObjectList = "1" Wektor.s.X = 0sek.Wektor.Y = 0sek.Wektor.Z = 1 iSecs.PrepareModificationiSecs.SetSection sekiSecs.FinishModification
' uzyskaj wyniki Dim iCalc As ICalculation2 Set iCalc = iModel.GetCalculation Dim iRes As IResults2Ustaw iRes = iCalc.GetResultsInFeNodes (LoadCaseType, 1) Dim secRes () As RFEM5.SectionResultsecRes = iRes.GetResultsInSection (2, AtNo,Siła ścinania, Ciągły rozkład wewnątrz obiektów, Fałsz)
Aby przenieść kilka elementów, należy najpierw utworzyć pole (tablicę) w VBA:
Dim węzły (0 do 2) jako RFEM5.Node
Następnie za pomocą metody IModelData.SetNodes () można przenieść wszystkie węzły do pola (tutaj trzy elementy 0,1,2) naraz.
Metody te są również dostępne dla następujących elementów konstrukcyjnych, na przykład:
IModelData.SetLines ()
IModelData.SetMembers ()
IModelData.SetSurfaces ()